#pragma once
#include <memory>
#include "StreamDefine.h"



class StreamHandle;
class StreamMangement
{
    typedef std::shared_ptr<StreamHandle> StreamHandlePtr;
public:
    explicit StreamMangement(Stream::StreamType nStreamType);
    ~StreamMangement();
    void ListSupportedHD();
    void ListDshowDevice();
    bool StartDecode(const Stream::StreamInfo& infoStream);
    void StopDecode();
    bool GetRtmpUrl(std::string& strRtmp);

public:
    static void Init();
    static void Uninit();

private:
    bool check_handle();
    bool check_para(const Stream::StreamInfo& infoStream);

private:
    StreamHandlePtr m_pHandle;

};

